package com.wlz.bitOperation;

/**
 *   二进制负数转换成十进制
 *       1.对二进制数逐位取反
 *       2.对取反后的二进制数加1，加上负号，结果就是二进制负数转化成的十进制数。
 *
 * @author： wlz
 * @Date 2021/1/19 17:32
 * @description： TODO
 * @version: 1.0
 */
public class BinaryNegative {

    public static void main(String[] args) {


        /**
         *   1111 1111 1111 1111 1111 1111 1111 0110  （-10 的二进制）
         *
         *   0000 0000 0000 0000 0000 0000 0000 1001  (对二进制取反)
         *
         *   0000 0000 0000 0000 0000 0000 0000 1010   (对取反后的二进制加1 等于 10 加负号 就是  1111 1111 1111 1111 1111 1111 1111 0110 的 十进制结果)
         */
        // 结果 1111 1111 1111 1111 1111 1111 1111 0110
        System.out.println(Integer.toBinaryString(-10));

        /**
         *   1111 1111 1111 1111 1111 1111 1111 1011  (-5 的二进制)
         *
         *   0000 0000 0000 0000 0000 0000 0000 0100   (对二进制取反)
         *
         *   0000 0000 0000 0000 0000 0000 0000 0101 （对取反的二进制加1 等于 5 加负号 就是 1111 1111 1111 1111 1111 1111 1111 1011 的十进制结果）
         */
        // 结果 1111 1111 1111 1111 1111 1111 1111 1011
        System.out.println(Integer.toBinaryString(-5));

    }
}
